using System;
using System.Collections.Generic;

namespace VOL.Entity.DomainModels
{
    /// <summary>
    /// 销售订单出库请求DTO
    /// </summary>
    public class SalesOutboundRequestDto
    {
        /// <summary>
        /// 出库编号
        /// </summary>
        public string OutboundCode { get; set; }

        /// <summary>
        /// 出库类型外键id（销售出库类型）
        /// </summary>
        public long OutInTypeId { get; set; }

        /// <summary>
        /// 仓库外键id
        /// </summary>
        public long WarehouseId { get; set; }

        /// <summary>
        /// 出库日期
        /// </summary>
        public DateTime OutboundDate { get; set; }

        /// <summary>
        /// 关联单号（销售订单ID）
        /// </summary>
        public long RelationalID { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string Contact { get; set; }

        /// <summary>
        /// 收货人
        /// </summary>
        public string Consignee { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string ContactPhone { get; set; }

        /// <summary>
        /// 用户ID
        /// </summary>
        public long UserId { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 出库总数量
        /// </summary>
        public int OutboundAllNum { get; set; }

        /// <summary>
        /// 出库总金额
        /// </summary>
        public long OutboundAllMoney { get; set; }

        /// <summary>
        /// 出库货品
        /// </summary>
        public string OutboundAllGoods { get; set; }

        /// <summary>
        /// 出库明细列表
        /// </summary>
        public List<SalesOutboundDetailDto> Details { get; set; }
    }

    /// <summary>
    /// 销售订单出库明细DTO
    /// </summary>
    public class SalesOutboundDetailDto
    {
        /// <summary>
        /// 关联明细id（销售订单明细ID）
        /// </summary>
        public long DetailId { get; set; }

        /// <summary>
        /// 库位外键id
        /// </summary>
        public long StorageId { get; set; }

        /// <summary>
        /// 本次出库数量
        /// </summary>
        public int OneOutboundNum { get; set; }

        /// <summary>
        /// 批次号
        /// </summary>
        public string BatchNumber { get; set; }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime ProductionDate { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }
}
